CC65 开发FC/NES 游戏(三)使用摇杆 您所在的位置:网站首页 fc游戏 ab一起按跳起来蹬腿 CC65 开发FC/NES 游戏(三)使用摇杆

CC65 开发FC/NES 游戏(三)使用摇杆

2023-06-01 01:43| 来源: 网络整理| 查看: 265

CC65在我的文章(一)中可以获取到 或者直接去github下载cc65  这次的代码来自cc65的samples目录下的hello.c 并做了修改和注释  通过查看源码可以看到里面支持的机器类型  #if defined(__NES__) || defined(__PCE__) || defined(__GAMATE__)  NES PCE GAMATE  通过 cmd 命令将 c 编译成 nes 文件  cl65 -t nes -o demo.nes demo.c 

#include #include #include #include static const char Text [] = "Hello world!"; // 2个临时变量,防止按住了按键频繁输出造成的闪烁 unsigned int p1,pt1; // 屏幕四边划线,原始代码暂时没处理 void drawline(void){ unsigned char XSize, YSize; // 清屏,光标移到左上角 clrscr (); // 获取屏幕尺寸,传入地址相当于让函数给这2个地址赋值 screensize (&XSize, &YSize); /* Draw a border around the screen */ //顶端线 cputc (CH_ULCORNER); chline (XSize - 2); cputc (CH_URCORNER); /* Vertical line, left side */ cvlinexy (0, 1, YSize - 2); //底端线 cputc (CH_LLCORNER); chline (XSize - 2); cputc (CH_LRCORNER); /* Vertical line, right side */ cvlinexy (XSize - 1, 1, YSize - 2); // 屏幕正中间显示 hello world 文字 // 就是将光标移到 gotoxy ((XSize - strlen (Text)) / 2, YSize / 2); cprintf ("%s", Text); } void main (void) { // 屏幕颜色,黑底白字 (void) textcolor (COLOR_WHITE); (void) bordercolor (COLOR_BLACK); (void) bgcolor (COLOR_BLACK); // 屏幕四边划线(前面的方法) drawline(); // 初始化手柄 joy_install (joy_static_stddrv); while (1){ p1 = joy_read (JOY_1); // start 和 select 一起按的时候跳出循环,相当于重启 if(p1==12){break;} // p1的案件一直没变的情况不做响应 if(p1==pt1){continue;} pt1=p1; // 输出按键对应的数值,因为长短不同需要空格覆盖原有位置的字符 gotoxy(1,1); cprintf(" "); gotoxy(1,1); cprintf("%d",p1); } // 前面使用break 跳出循环会走到这里 gotoxy(0,0); cprintf("over"); }

 

通过这个demo我们可以获取到按键对应的数值   

按键二进制十进制16进制A0000000110x01B0000001020x02select0000010040x04start0000100080x08上00010000160x10下00100000320x20左01000000640x40右100000001280x80

 

连发 A 和 B 就是这个数字频闪 0和对应的1,2两个数字  解释:  其实这个按键的取值是从默认的地址获取一个 16进制的值  比如右这个值最大对应的  十进制 128  16进制 80  二进制 10000000  同理左的二进制 是  01000000  如果全按了就会显示 11111111  当多个按键一起按的时候相当于累加 比如 AB一起按输出的就是 3  截图是我用qq的 ctrl+alt+a 同时按着下(s) 相当于同时按了 左和下 显示的就是 96 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有